A disk drive is a data storage device that stores digital data in tracks on a disk. Data is read from or written to a track of the disk using a transducer, which includes a read element and a write element, and is held close to the track while the disk spins about its center at a substantially constant angular velocity. To properly locate the transducer near the desired track during a read or write operation, a closed-loop servo control system is generally implemented. The servo control system uses servo data read from the disk to align the transducer with the desired track. The servo data is generally written to the disk using a servo track writer (STW). However, there has been movement towards having the disk drive self-servo write some or all of the servo data.
In an ideal disk drive, the tracks of the disk are non-perturbed circles situated about the center of the disk. As such, each of these ideal tracks includes a track centerline that is located at a known constant radius from the disk center. In an actual disk drive, however, it is difficult to write non-perturbed circular tracks to the disk. That is, due to certain problems (e.g., vibration, bearing defects, inaccuracies in the STW and disk clamp slippage), the tracks are generally written differently from the ideal non-perturbed circular shape. Positioning error created by the perturbed nature of these tracks is known as written-in repeatable runout (WRRO).
The perturbed shape of these tracks complicates the transducer positioning during read and write operations because the servo control system needs to continuously reposition the transducer during track-following to keep up with the constantly changing radius of the track centerline with respect to the center of the spinning disk. Furthermore, the perturbed shape of these tracks can result in track squeeze and track misregistration errors during read and write operations.
Disk drive manufacturers have developed techniques to measure the WRRO so that compensation values (also known as embedded runout correction values or ERC values) may be generated and used to position the transducer along an ideal track centerline. Examples of such techniques may be found in U.S. Pat. No. 4,412,165 to Case et al. entitled “Sampled Servo Position Control System,” U.S. Pat. No. 5,793,559 to Shepherd et al. entitled “In Drive Correction of Servo Pattern Errors,” U.S. Pat. No. 6,115,203 to Ho et al. entitled “Efficient Drive-Level Estimation of Written-In Servo Position Error” and U.S. Pat. No. 6,549,362 to Melrose et al. entitled “Method and Apparatus for the Enhancement of Embedded Runout Correction in a Disk Drive,” all of which are incorporated herein by reference.
A STW may generate the ERC values to correct non-ideal tracks. For example, the transducer may be held over a specified radial position, which (approximately) corresponds to a center of an ideal track, using an external position reference. The position error signal (PES) can then be measured on a sector-by-sector basis over multiple revolutions of the disk, and the PES can be averaged (again, on a sector-by-sector basis) to average-out non-repeatable runout (NRRO). The averaged PES could then be used to generate ERC values to correct the tracks.
Because a STW is an extremely expensive piece of capital equipment, instead of using a STW, the ERC values are generally generated during the disk drive self-test.
FIG. 1 illustrates determining the ERC values using a conventional “one-shot” technique. The PES associated with each servo sector of a track is collected over multiple revolutions (e.g., 4–8 revolutions) of the disk and then averaged to obtain the position error due to repeatable runout (PES RRO). The PES RRO is then circularly convolved with the inverse impulse response of the servo control system to obtain the WRRO. The ERC values for the track are based on the WRRO. Furthermore, the ERC values are generated once.
In step 10, when following a track, the PES is measured and summed for each of the servo bursts associated with the track for N revolutions of the disk. Next, in step 20, the PES RRO is determined by dividing the sums by N to obtain the average PES associated with each of the servo bursts. The position error is averaged for N revolutions of the disk to average-out the affects of NRRO.
In step 30, the inverse impulse response (inverse transfer function) for the servo control system is obtained. The inverse impulse response may be obtained in a variety of ways, including those described in the Ho et al. and Melrose et al. patents. Furthermore, the inverse impulse response may be obtained for each transducer in the disk drive as described in the Melrose et al. patent.
Next, in step 40, the average PES RRO is circularly convolved with the inverse impulse response to obtain the WRRO. Finally, in step 50, the ERC values are determined and written to the disk based on the WRRO.
The ERC values may be represented by the following equation:
                              ERC          ⁡                      (            n            )                          =                              ∑                          m              =              0                                      N              -              1                                ⁢                                          ⁢                                                    PES                ⁡                                  (                  m                  )                                            _                        *                                                            h                  ^                                inv                            ⁡                              (                                                      [                                          n                      -                      m                                        ]                                    ⁢                  %                  ⁢                  N                                )                                                                        (        1        )            where ERC(n) is the ERC value computed for the nth servo wedge, PES(m) is the synchronously-averaged PES of the mth servo wedge, ĥinv(j) is the jth sample of the estimated inverse impulse response of the servo control system and “%” is the modulo function where:(n−m)%=n−m+N when (n−m)<0 and  (2)(n−m)%=n−m when 0≦(n−m)<N 
While the one-shot technique has advantages, it also has drawbacks. For example, the one-shot technique cannot properly compensate for PES non-linearities (e.g., due to read asymmetry or other non-linear error sources), errors in modeling the inverse impulse response (e.g., gain errors or non-linearities), and errors introduced into the servo control system by NRRO (e.g., noise when measuring the PES RRO). Furthermore, the RRO may be so large that after the ERC values have been determined and applied (and thus the transducer position is changed as a function of time), the transducer sees significantly different RRO due perhaps to servoing on different servo bursts than those used for determining the ERC values.
Accordingly, it would be desirable to determine ERC values that reduce the aforementioned drawbacks.